Expresion은 variables, operators, method invocations 들로 이루어진 construct 이며 하나의 단일 값 이다.
expression으로 인해 반환된 value의 data type은 expression에서 사용된 elements에 결정된다. “cadence = 0” expression 은 정수를 리턴한다. 이경우 cadence는 정수타입이다. assignment operator가 왼쪽 피연산자와 동일한 데이터 유형의 값을 반환한다. 다른 expressions에서도 cadence 가 boolean 또는 String 타입이라면 cadence의 데이터타입의 값을 리턴한다.
java는 표현식들의 데이타 타입이 일치한다면 밑의 코드와 같이 여러 작은 표현식들을 사용하여 복합적인 expressions를 만들 수 있다.
1 * 2 * 3
expression을 사용할 땐 연산자 우선순위를 고려해야한다. 그렇기 때문에 명확하게 사용하기 위해서 bracket을 명시적으로 표시해줘야한다.
statements는 실제 언어로 사용하는 문장들과 거의 비슷하다. statement 한 완전한 실행 유닛을 형성한다. 밑에있는 종류의 expression 세미콜론을 사용하여 표현식을 종료하고 statement로 만들 수 있다.
밑의 statements 들은 expression statement라고 불린다
// assignment statement
aValue = 8933.234;
// increment statement
aValue++;
// method invocation statement
System.out.println("Hello World!");
//object creation statement
Bicycle myBike = new Bicycle();
추가적으로 expression statements에는 declaration statements와 control flow statements 가 존재한다.
declaration statement 는 변수를 선언한다.
// declaration statement
double aValue = 8933.234;
코드는 위에서 아래로 순서대로 실행이 된다. 하지만 control statements는 branch와 looping을 만들어 프로그램이 상태에 따라 실행이 되도록 한다.
decision-making statements
looping statements
branch statements
block은 중괄호 사이에 0개 이상의 statement로 구성된 그룹이며 단일 문이 허용되는 모든곳에서 사용할 수 있다.
class BlockDemo {
public static void main(String[] args) {
boolean condition = true;
if (condition) { // begin block 1
System.out.println("Condition is true.");
} // end block one
else { // begin block 2
System.out.println("Condition is false.");
} // end block 2
}
}